package org.zhengquan.dao;

import org.apache.ibatis.annotations.Param;
import org.zhengquan.pojo.SysDept;

import java.util.List;

public interface SysDeptMapper {
    int deleteByPrimaryKey(@Param("id") Integer id);

    int insert(SysDept record);

    int insertSelective(SysDept record);

    SysDept selectByPrimaryKey(@Param("id") Integer id);

    int updateByPrimaryKeySelective(SysDept record);

    int updateByPrimaryKey(SysDept record);

    /**
     * 获取所有部门
     *
     * @return
     */
    List<SysDept> selectAllDept();

    /**
     * 获取所有level下的子部门
     *
     * @param level
     * @return
     */
    List<SysDept> selectChildDeptListByLevel(@Param("level") String level);


    /**
     * 批量更新部门的level
     *
     * @param sysDeptList
     */
    void batchUpdateLevel(@Param("sysDeptList") List<SysDept> sysDeptList);

    /**
     * 根据部门名称,部门id和部门父id判断部门是否重复
     *
     * @param parentId
     * @param deptId
     * @param deptName
     * @return
     */
    int countByNameAndParentId(@Param("parentId") Integer parentId, @Param("deptId") Integer deptId, @Param("deptName") String deptName);

    /**
     * 查询所有deptId的子部门
     * @param deptId
     * @return
     */
    int countByParentId(@Param("deptId") Integer deptId);
}